package net.sos.services.contract;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

import net.sos.services.common.ICommonConstants;
import net.sos.services.valueobject.Employee;
import net.sos.services.valueobject.Message;

@WebService(name = "First", targetNamespace = ICommonConstants.TARGET_NAMESPACE)
public interface IFirstService {

   @WebMethod(operationName = "SayHello")
   @WebResult(name = "OutName", targetNamespace = ICommonConstants.TARGET_NAMESPACE)
   String sayHello(
         @WebParam(name = "Name", targetNamespace = ICommonConstants.TARGET_NAMESPACE) String name);

   @WebMethod(operationName = "SayHellos")
   @WebResult(name = "OutNames", targetNamespace = ICommonConstants.TARGET_NAMESPACE)
   String[] sayHellosi(
         @WebParam(name = "Names", targetNamespace = ICommonConstants.TARGET_NAMESPACE) String[] names);

   @WebMethod(operationName = "GetEmployee")
   @WebResult(name = "Employee", targetNamespace = ICommonConstants.TARGET_NAMESPACE)
   Employee getEmployee(
         @WebParam(name = "EmployeeId", targetNamespace = ICommonConstants.TARGET_NAMESPACE) String employeeId);

   @WebMethod(operationName = "giveOneGetN")
   @WebResult(name = "OutMessage", targetNamespace = ICommonConstants.TARGET_NAMESPACE)
   Message giveOneGetN(
         @WebParam(name = "InMessage", targetNamespace = ICommonConstants.TARGET_NAMESPACE) Message inMessage);

}
